var names = ['jelly', 'cason']

// 类的声明
class Person {
  // 类的构造方法 (一个类只能有一个构造函数)
  constructor(name, age) {
    this.name = name
    this.age = age
    this._address = '北京市'
  }

  // 普通的实例方法(通过 new 出来的对象进行使用)
  eating() {
    console.log('eating');
  }
  running() {
    console.log('running');
  }

  // 类的访问器方法
  get address() {
    return this._address
  }
  set address(val) {
    this._address = val
  }

  // 类的静态方法（类方法）
  // Person.createPerson() (通过类直接使用的函数)
  static randomPerson() {
    var nameIndex = Math.floor(Math.random() * names.length)
    var name = names[nameIndex]
    var age = Math.floor(Math.random() * 100)
    var name = names[nameIndex]
    return new Person(name, age)
  }
}

var p1 = new Person('why', 18)